package com.zpark.servlet_context;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @PackageName: com.zpark.servlet_context
 * @ClassName: ServletRequestDemo01
 * @Description:
 * @author: RZS
 * @date: 2023/3/8  9:57
 */
@WebServlet("/sq01.do")
public class ServletRequestDemo01 extends HttpServlet {
    /*
        获取http请求行数据
     */
    @Override
    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取 HTTP 请求方式（如 GET、POST 等）。
        String method = request.getMethod();
        System.out.println("请求方式------" + method);

        // 获取请求行中的资源名称部分，即位于 URL 的主机和端口之后，参数部分之前的部分。
        StringBuffer url = request.getRequestURL();
        System.out.println("请求url------" + url);

        // 获取请求行中的参数部分，也就是 URL 中“?”以后的所有内容。
        String queryString = request.getQueryString();
        System.out.println("请求参数部分-----" + queryString);

        // 返回当前 Servlet 所在的应用的名字（上下文）。对于默认（ROOT）上下文中的 Servlet，此方法返回空字符串""。
        String path = request.getContextPath();
        System.out.println("上下应用文路径------" + path);

        // 用于获取 Servlet 所映射的路径。
        String servletPath = request.getServletPath();
        System.out.println("映射的路径-------" + servletPath);

        // 获取客户端的 IP 地址。
        String remoteAddr = request.getRemoteAddr();
        System.out.println("客户端的 IP 地址-------" + remoteAddr);
    }
}
